//package com.loe.mvp.ext_view
//
//import android.content.Context
//import androidx.recyclerview.widget.RecyclerView
//import android.util.AttributeSet
//import com.chad.library.adapter.base.BaseQuickAdapter
//import com.loe.mvp.R
//import com.scwang.smart.refresh.footer.ClassicsFooter
//import com.scwang.smart.refresh.header.ClassicsHeader
//import com.scwang.smart.refresh.layout.SmartRefreshLayout
//import com.scwang.smart.refresh.layout.api.RefreshLayout
//import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
//
///**
// * 集成刷新布局
// */
//class RefreshLayout : SmartRefreshLayout
//{
//    companion object
//    {
//        init
//        {
//            //设置全局的Header构建器
//            setDefaultRefreshHeaderCreator()
//            { context, layout ->
//                layout.setPrimaryColorsId(android.R.color.transparent, R.color.kt_grayDeep)
//                ClassicsHeader(context)
//                    .setDrawableSize(18f)
//            }
//            //设置全局的Footer构建器
//            setDefaultRefreshFooterCreator()
//            { context, layout ->
//                ClassicsFooter(context)
//                    .setDrawableSize(15f)
//            }
//            ClassicsFooter.REFRESH_FOOTER_NOTHING = ""
//        }
//    }
//
//    constructor(context: Context) : super(context)
//    {
//        init(null, 0)
//    }
//
//    constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
//    {
//        init(attrs, 0)
//    }
//
//    private fun init(attrs: AttributeSet?, defStyle: Int)
//    {
//        setEnableOverScrollBounce(false)
//        setDragRate(0.65f)
//    }
//
//    var pageSize: Int = 10
//
//    var page = 1
//
//    var adapter: BaseQuickAdapter<*, *>? = null
//        set(value)
//        {
//            field = value
//            for (i in 0 until childCount)
//            {
//                val v = getChildAt(i)
//                if (v is RecyclerView)
//                {
//                    v.adapter = value
//                }
//            }
//
//            value?.emptyView = inflate(context, R.layout.layout_list_empty, null)
//        }
//
//    var emptyView
//        get() = adapter?.emptyView
//        set(value)
//        {
//            adapter?.emptyView = value
//        }
//
//    private var onLoadData: ((isRefresh: Boolean) -> Unit)? = null
//
//    /** 设置加载监听 */
//    fun setOnLoaData(onLoadData: (isRefresh: Boolean) -> Unit)
//    {
//        this.onLoadData = onLoadData
//        setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener
//        {
//            override fun onRefresh(refreshLayout: RefreshLayout)
//            {
//                page = 1
//                onLoadData(true)
//            }
//
//            override fun onLoadMore(refreshLayout: RefreshLayout)
//            {
//                onLoadData(false)
//            }
//        })
//    }
//
//    var isRefreshState = false
//        set(value)
//        {
//            field = value
//            post()
//            {
//                setNoMoreData(value)
//            }
//        }
//
//    /** 设置刷新监听 */
//    fun setOnRefresh(onRefresh: () -> Unit)
//    {
//        isRefreshState = true
//
//        setOnLoaData()
//        { isRefresh ->
//            if (isRefresh)
//            {
//                onRefresh()
//            }
//        }
//    }
//
//    fun loadData(isRefresh: Boolean = true)
//    {
//        if (isRefresh)
//        {
//            page = 1
//        }
//        onLoadData?.invoke(isRefresh)
//    }
//
//    /**
//     * 加载完成调用
//     */
//    fun loadOk(aList: List<*>? = null)
//    {
//        loadOk(true, aList)
//    }
//
//    /**
//     * 加载完成调用
//     */
//    fun loadOk(isRefresh: Boolean = true, aList: List<*>? = null)
//    {
//        closeHeaderOrFooter()
//        if (aList == null)
//        {
//            setNoMoreData(true)
//        } else
//        {
//            adapter?.let()
//            {
//                if (mEnableLoadMore)
//                {
//                    if (isRefresh)
//                    {
//                        it.data.clear()
//                        setNoMoreData(isRefreshState)
//                    }
//                    it.addData(aList as List<Nothing>)
//
//                    if (aList.isEmpty() || aList.size < pageSize)
//                    {
//                        setNoMoreData(true)
//                    }
//                    page++
//                } else
//                {
//                    it.data.clear()
//                    it.addData(aList as List<Nothing>)
//                }
//            }
//        }
//    }
//
//    /**
//     * 加载失败调用
//     */
//    fun loadError(isRefresh: Boolean = true)
//    {
//        if (isRefresh)
//        {
//            finishRefresh(false)
//        } else
//        {
//            finishLoadMore(false)
//        }
//    }
//
//    /** 单页，隐性无加载 */
//    fun singlePage()
//    {
//        pageSize = Int.MAX_VALUE
//    }
//}